package org.example.demo3.demos.web.VmsTransactionFlowInvoice.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.demo3.demos.web.VmsTransactionFlowInvoice.domain.*;
import org.example.demo3.demos.web.common.Result;
import org.example.demo3.demos.web.model.dto.vmstransactionflowinvoice.VmsTransactionFlowInvoiceDto;
import org.example.demo3.demos.web.model.negativestream.vmstransactionflowinvoice.VmsManualInvoiceVo;

import java.util.List;

public interface VmsTransactionFlowInvoiceService   extends IService<NvatTrandtadvaltaxsep>{

    Result<IPage<VmsTransactionFlowInvoicePageVo>> getTransactionFlowInvoiceList(VmsTransactionFlowInvoicePageDto dto, Page<VmsTransactionFlowInvoicePageVo> page);

    Result<List<VmsMergeBo>> preMerge(preMergeDTO dto);

    Result<Object> restoreFlow(String id);
    Result<Object> checkFlowInvoiceStatus(String id);
    Result<IPage<VmsMergeQueryVo>> mergeQuery(preMergeDTO dto);

    Result<Object> merge(preMergeDTO dto);
    Result<VmsFlowInvoiceDetailVo>  getMergeSplitInfo(String rdid);
    Result<IPage<VmsFlowInvoiceDetailVo>> getMergeSplitItem(preMergeDTO dto);
    Result<VmsManualInvoiceVo> getInvoiceInfoByTransactionFlow(List<Long> ids);
    Result<Object> splitTransactionFlow(VmsFlowSplitDto dto);
    Result<Object> invoiceByTransactionFlow(VmsTransactionFlowInvoiceDto dto);


}
